package safeCommitter.test.finder.core;

import java.util.Map;
import java.util.Set;

import org.eclipse.jdt.core.IMethod;

import safeCommitter.model.MMethod;
import safeCommitter.model.adpters.SCSingleMethodTest;

public interface ISCMethodRepository {

	public Set<MMethod> addMethodCallee(final IMethod method, final MMethod callee);

	public void addTestCallee(final SCSingleMethodTest test, final MMethod callee);

	public void addTestCallees(final SCSingleMethodTest test, final Set<MMethod> callees);

	public void addMethodCallees(final IMethod method, final Set<MMethod> callees);

	public Map<IMethod, Set<MMethod>> getMethodCalledMap();

	public void setMethodCalledMap(final Map<IMethod, Set<MMethod>> methodCalledMap);

	public Map<SCSingleMethodTest, Set<MMethod>> getTestCalledMap();

	public void setTestCalledMap(final Map<SCSingleMethodTest, Set<MMethod>> testCalledMap);

	public Set<MMethod> addTestCallee(final SCSingleMethodTest t);

	public void removeMethodsFromMap(final Set<IMethod> methods);

	public Set<IMethod> getMethodsToCheck();

	public void addSearchedMethods(final Set<IMethod> methods);

	public Boolean alreadySearched(final IMethod m);

	public Set<SCSingleMethodTest> getTestCalledSet();

	public void addTest(final SCSingleMethodTest test);

	public void addCalledMethod(final IMethod method);

}
